﻿#define _CRT_SECURE_NO_WARNINGS 1


////不用加减乘除做加法
////描述
////写一个函数，求两个整数之和，要求在函数体内不得使用 + 、 - 、 * 、 / 四则运算符号。
////数据范围：两个数都满足 - 10 \le n \le 1000−10≤n≤1000
////进阶：空间复杂度 O(1)O(1)，时间复杂度 O(1)O(1)
////示例1
////输入：1, 2
////返回值：3
////
////示例2
////输入：0, 0
////返回值：0
//
//int Add(int num1, int num2) {
//    while (num2)
//    {
//        int temp = num1 ^ num2;
//        num2 = (num1 & num2) << 1;
//        num1 = temp;
//    }
//    return num1;
//}











////找到所有数组中消失的数字
////给你一个含 n 个整数的数组 nums ，其中 nums[i] 在区间[1, n] 内。请你找出所有在[1, n] 范围内但没有出现在 nums 中的数字，并以数组的形式返回结果。
////示例 1：
////输入：nums = [4, 3, 2, 7, 8, 2, 3, 1]
////输出：[5, 6]
////
////示例 2：
////输入：nums = [1, 1]
////输出：[2]
//
//int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {
//    int* arr = (int*)calloc(sizeof(int), numsSize);
//    *returnSize = 0;
//    for (int i = 0; i < numsSize; i++)
//    {
//        arr[nums[i] - 1]++;
//    }
//    for (int i = 0; i < numsSize; i++)
//    {
//        if (arr[i] == 0)
//            arr[(*returnSize)++] = i + 1;
//    }
//    return arr;
//}












////单词倒排
////描述
////对字符串中的所有单词进行倒排。
////说明：
////1、构成单词的字符只有26个大写或小写英文字母；
////2、构成单词的字符均视为单词间隔符；
////3、要求倒排后的单词间隔符以一个空格表示；如果原字符串中相邻单词间有多个间隔符时，倒排转换后也只允许出现一个空格间隔符；
////4、每个单词最长20个字母；
////数据范围：字符串长度满足 1 \le n \le 10000 \1≤n≤10000
////
////输入描述：
////输入一行，表示用来倒排的句子
////
////输出描述：
////输出句子的倒排结果
////示例1
////输入：I am a student
////输出：student a am I
////
////示例2
////输入：$bo * y gi!r#l
////输出：l r gi y bo
//
//
//#include<stdio.h>
//#include<string.h>
//void test(char arr[], int len)
//{
//    for (int i = 0; i < len; i++)
//    {
//        if ((arr[i] >= 'a' && arr[i] <= 'z') || (arr[i] >= 'A' && arr[i] <= 'Z'))
//            continue;
//        else
//            arr[i] = ' ';
//    }
//}
//void test1(char arr[], int left, int right)
//{
//    while (left < right)
//    {
//        char temp = arr[left];
//        arr[left] = arr[right];
//        arr[right] = temp;
//        right--;
//        left++;
//    }
//}
//int main()
//{
//    char arr[10000] = "";
//    gets(arr);
//    int len = strlen(arr);
//    test(arr, len);
//    int left = 0;
//    int right = len - 1;
//    test1(arr, left, right);
//
//    int start = 0;
//    int end = 0;
//    while (arr[end] != '\0')
//    {
//        while (arr[end] != '\0' && arr[end] != ' ')
//            end++;
//        test1(arr, start, end - 1);
//        start = end + 1;
//        if (arr[end] != '\0')
//            end++;
//    }
//    printf("%s", arr);
//}
